]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
windowManager: detect change to a non-existent WS
authorSergio Costas <raster@rastersoft.com>
Thu, 24 Jan 2019 22:06:48 +0000 (23:06 +0100)
committerSergio Costas <raster@rastersoft.com>
Thu, 24 Jan 2019 22:59:23 +0000 (23:59 +0100)
When using dynamic workspaces, it is possible to try to change to a
non-existent one if the user defines hotkeys for changing to desktop
1, 2, 3... This case is not detected, and gnome shell shows an error:

JS ERROR: TypeError: workspace is null
actionMoveWorkspace@resource:///org/gnome/shell/ui/windowManager.js:2130:13
wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
_showWorkspaceSwitcher@resource:///org/gnome/shell/ui/windowManager.js:2104:13
wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22

This patch adds a check before trying to change the workspace, to avoid
switching to a non-existent one.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/365

js/ui/windowManager.js

index fedee72d58c722fa6604515dcfc469eecb23805d..a8b4f8e695e1013cf1d169a8e00e291852e3ebe2 100644 (file)
@@ -2086,7 +2086,7 @@ var WindowManager = new Lang.Class({
 
             direction = Meta.MotionDirection[target.toUpperCase()];
             newWs = workspaceManager.get_active_workspace().get_neighbor(direction);
-        } else if (target > 0) {
+        } else if ((target > 0) && (target <= workspaceManager.n_workspaces)) {
             target--;
             newWs = workspaceManager.get_workspace_by_index(target);